Su código reemplaza todo el campo de machines con el valor que especifique.
Como se explica en el documento , puede usar la " notación de puntos" para hacer referencia a campos anidados dentro del documento.
En tu caso:
db.collection('customers').document('B') .update( { "machines.B1.status": "online"} );